package com.xfp.mapper;

import com.github.pagehelper.Page;
import com.xfp.anntation.AutoFill;
import com.xfp.enumclass.OperationClass;
import com.xfp.pojo.dto.PartnerDto;
import com.xfp.pojo.dto.PartnerQueryDto;
import com.xfp.pojo.entity.Partner;
import com.xfp.pojo.vo.PartnerVo;
import org.apache.ibatis.annotations.*;

@Mapper
public interface PartnerMapper {

    /**
     * 新增合作商
     * @param dto
     * @return
     */
    @AutoFill(OperationClass.INSERT)
    @Insert("insert into tb_partner (name,contact,mobile,ratio,account,password,create_time,update_time,create_user,update_user) " +
            "values " +
            "(#{name},#{contact},#{mobile},#{ratio},#{account},#{password},#{createTime},#{updateTime},#{createUser},#{updateUser})")
    int insert(Partner dto);

    /**
     * 合作商_分页查询
     * @param dto
     * @return
     */
    Page<PartnerVo> page(PartnerQueryDto dto);

    /**
     * 修改合作商
     * @param
     * @param dto
     * @return
     */
    @AutoFill(OperationClass.UPDATE)
    int update(Partner dto);

    /**
     * 获取合作商基本信息
     * @param id
     * @return
     */
    @Select("select * from tb_partner where id =#{id}")
    Partner findById(Integer id);

    /**
     * 删除合作商
     * @param id
     * @return
     */
    @Delete("delete from tb_partner where id = #{id}")
    int delete(Integer id);

    /**
     * 重置合作商密码
     * @param id
     */
    @Update("update tb_partner set password = 123456 where id = #{id}")
    void restPwd(Integer id);

    /**
     * 获取每个合作商的售货机数量
     * @param id
     * @return
     */
    @Select("select count(*) from tb_vending_machine where owner_id =#{id}")
    int countVm(Integer id);
}
